1. Field of the Invention
The present invention relates to a mobile robot, and, more particularly, to a technique for measuring the pose of a mobile robot and a technique for measuring the position of a mobile robot using a camera, an inertia sensor, and an encoder.
2. Description of the Related Art
In general, industrial robots have been developed to improve factory automation, and perform manufacturing processes in extreme environments in which human beings cannot work. In recent years, robotics technology has been used in the high-tech space development industry, which has lead to the development of human-friendly home service robots. In addition, small robots can be inserted into the human body instead of medical instruments to treat minute cellular texture which cannot be treated by existing medical instruments. Robotics technology has drawn attention as a next generation technology.
Home service robots, such as cleaning robots, have played a leading role in the expansion of the robotics technology focused on industrial robots used for only heavy industries to robotics technology focused on light industries. Cleaning robots generally include a driving unit for movement, a cleaning unit, and a positioning unit for measuring its position or the position of a remote controller.
In mobile robots, such as cleaning robots, it is a basic and important function to check its exact position. The absolute position of the mobile robot can be calculated by the following methods: using a beacon having an ultrasonic sensor provided therein; using an indoor GPS (global positioning system); and controlling a robot to extract feature points from an interior image captured by a camera, to register the extracted feature points, and to calculate the current position of the robot using the feature points. In addition, the relative position of the mobile robot can be calculated by the following methods: calculating the rotational speed of a mobile robot and the speed of the mobile robot traveling straight using an encoder and integrating the speeds; integrating an acceleration value obtained by an acceleration sensor twice; and integrating the rotational speed of the mobile robot, which is the output of a gyrosensor, to calculate a traveling direction.
The method using a camera and an encoder shown in FIG. 1 is generally used to calculate the absolute position of a mobile robot.
When an image captured by a movable camera is input (Step S11), the mobile robot extracts feature points from the input image and registers the extracted feature points (Step S12). However, first, it is necessary to calculate the height from the floor on which the mobile robot is positioned to the feature point (the height of the feature point) in order to measure the displacement of the mobile robot from the registered feature point (Step S13). In this case, the mobile robot uses signals (encoder signals) input from the encoder to calculate the height of the feature point (Step S15). After the height of the feature point is calculated, the registered feature point is compared with a feature point obtained while the mobile robot is moving to measure the displacement of the mobile robot (Step S14).
However, in the method shown in FIG. 1, when the pose of the camera is incorrect, the mobile robot may be erroneously operated. FIG. 2 shows a variation in a ceiling image when the pose of the mobile robot is changed at the same position. A left image 21 is a ceiling image when the mobile robot is disposed in parallel to the floor, and a right image 22 is a ceiling image when a front end of the mobile robot is slightly lifted. In the right image, the encoder value of the mobile robot is not changed, but the mobile robot determines that it moves backward on the basis of the captured image 22. As such, when the pose of the mobile robot or the pose of the camera is incorrect, an error in sensing may considerably increase due to a minute variation in pitch or roll. Therefore, it is very important to accurately measure the pose of the mobile robot in order to sense the displacement of the mobile robot.
The above-mentioned method has problems in that a large error may occur in the displacement of the mobile robot when the mobile robot is not parallel to the floor and it takes a lot of time to register feature points since the displacement of the robot is measured by an unreliable encoder and then the height of the feature point is calculated.
Meanwhile, according to another method of calculating the position of the mobile robot, a value obtained by an inertia sensor, such as an accelerometer or a gyrosensor, is integrated to calculate the displacement of the mobile robot, and the obtained value is combined with the value obtained by the encoder, thereby improving the accuracy of measurement. FIG. 3 is a flowchart illustrating the method.
A value obtained by a three-axis gyrosensor is input to the mobile robot (Step S31), and the mobile robot estimates its pose using the input value (Step S32). A value obtained by a three-axis accelerometer is input to the mobile robot (Step S33), and the mobile robot performs a process of compensating for gravity (Step S34). Then, a value obtained by the encoder is input to the mobile robot (Step S35), and the mobile robot calculates the displacement obtained from the estimated pose (a roll, a pitch, and a yaw) and the compensated value of the accelerometer.
However, in this method, when the mobile robot travels straight at a low speed, the signal obtained by the accelerometer is so weak that it cannot be discriminated from noise. Therefore, the method has a low position-calculating performance, and when the inertia sensor is used to perform integration for a long time, the accuracy of integration is lowered.